﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using vudu.Presentacion.Contrato.VU_07_Gestionar_Esquema_de_Evaluacion_por_Profesor;
using vudu.ClasesDominio;
using vudu.Logica.Fachada;
using System.Web.UI.WebControls;
using System.Data;

namespace vudu.Presentacion.Presentador.VU_07_Gestionar_Esquema_de_Evaluacion_por_Profesor
{
    public class PresentadorConsultarEsquemaProfesor
    {
        private IContratoConsultarEsquemaProfesor _vista;
        private EnlaceLogico _fachada;

        //Constructor de la clase
        public PresentadorConsultarEsquemaProfesor(IContratoConsultarEsquemaProfesor vista, EnlaceLogico fachada)
        {
            _vista = vista;
            _fachada = fachada;
        }

        //Inicia pantalla principal
        public void IniciarPantalla()
        {
            _vista.Esquemas.Visible = false;

            _vista.Primero.Visible = true;
            _vista.Segundo.Visible = false;
            _vista.Materia.Visible = false;

        }

        //Inicia pantalla secundaria
        public void IniciarPantallaSecundaria()
        {
            _vista.Esquemas.Visible = true;

            _vista.Primero.Visible = true;
            _vista.Segundo.Visible = true;

        }

        //Llena la lista de materias que da el profesor
        public void LlenarListaMateriasProfesor(Profesor profesor)
        {
            _vista.dMaterias.Items.Add(new ListItem("--Seleccione Materia--", "0"));

            List<SeccionMateria> materias = _fachada.ConsultarEsquemasDeEvaluacionProfesor(profesor);

            for (int i = 0; i < materias.Count; i++)
            {

                _vista.dMaterias.Items.Add(new ListItem(materias[i].Materia.Nombre.ToString() + " Seccion: " + materias[i].Codigo.ToString(), materias[i].IdSeccionMateria.ToString()));

            }

            _vista.Informacion.Text = "Profesor(a): " + profesor.Nombre+ " " + profesor.Apellido ;
        }

        //Llena la lista de materias que ve el estudiante
        public void LlenarListaMateriasEstudiante(Estudiante estudiante)
        {
            _vista.dMaterias.Items.Add(new ListItem("--Seleccione Materia--", "0"));

            List<SeccionMateria> materias = _fachada.ConsultarEsquemasEvaluacionEstudiante(estudiante);

            for (int i = 0; i < materias.Count; i++)
            {

                _vista.dMaterias.Items.Add(new ListItem(materias[i].Materia.Nombre.ToString() + " Seccion: " + materias[i].Codigo.ToString(), materias[i].IdSeccionMateria.ToString()));

            }

            _vista.Informacion.Text = "Alumno(a): " + estudiante.Nombre + " " + estudiante.Apellido;


        }

        //Llena la tabla con la informacion del esquema de evaluacion de la seccion que selecciona el usuario
        public void LlenarTablaEsquema(SeccionMateria miSeccion)
        {
            _vista.Materia.Text = _vista.dMaterias.SelectedItem.Text;
            _vista.Materia.Visible = true;
            DataTable table = new DataTable();
            table.Columns.Add("Nombre", typeof(String));
            table.Columns.Add("Tipo", typeof(String));
            table.Columns.Add("Porcentaje", typeof(Int32));
            table.Columns.Add("Fecha", typeof(DateTime));
            foreach (Evaluacion _eval in _fachada.ConsultarEvaluacionPorSeccion(miSeccion))
            {
                table.Rows.Add(_eval.Nombre, _eval.TipoEvaluacion, _eval.Porcentaje, _eval.FechaEvaluacion);
            }
            _vista.Esquemas.Visible = true;
            _vista.Esquemas.DataSource = table;
            _vista.Esquemas.DataBind();
        }

        //Vacia la informacion de la tabla de esquema de evaluacion
        public void VaciarTablaEsquema()
        {
            _vista.Esquemas.Visible = false;
        }

        


    }
}